<!DOCTYPE HTML><html lang="en">
<HEAD>

<meta name="copyright" content="Copyright (c) IBM Corporation and others 2000, 2016. This page is made available under license. For full details see the LEGAL in the documentation book that contains this page." >

<meta charset="utf-8">
<TITLE>Products extension point</TITLE>

<link rel="stylesheet" type="text/css" HREF="../book.css">
</HEAD>
<BODY>
<h3>Products Extension Point</h3>
<p>The preferred mechanism for defining a product based on the Eclipse platform
  is to contribute to the
<a href="../reference/extension-points/org_eclipse_core_runtime_products.html"><b>org.eclipse.core.runtime.products</b></a>
extension point.  To do this, a plug-in simply declares the name and id of its
product,
as
well as the id of the application extension that should be run when the product
is
invoked. This is the technique used by the Eclipse
platform itself in defining the Eclipse product.  Here is the extension definition
found in <b>org.eclipse.platform</b>:</p>
<pre>&lt;extension id="ide" point="org.eclipse.core.runtime.products"&gt; 
	&lt;<b>product name="%productName" application="org.eclipse.ui.ide.workbench" description="%productBlurb"</b>&gt; 
		&lt;property name="windowImages" value="eclipse.png,eclipse32.png"/&gt; 
		&lt;property name="aboutImage" value="eclipse_lg.png"/&gt; 
		&lt;property name="aboutText" value="%productBlurb"/&gt; 
		&lt;property name="appName" value="Eclipse"/&gt; 
		&lt;property name="preferenceCustomization" value="plugin_customization.ini"/&gt; 
	&lt;/product&gt; 
&lt;/extension&gt; </pre>
A product extension is defined whose <b>application</b> id is "org.eclipse.ui.ide.workbench".
This is the application id defined by the plug-in <b>org.eclipse.ui.ide</b> in
its
contribution to the <a href="../reference/extension-points/org_eclipse_core_runtime_applications.html"><b>org.eclipse.core.runtime.applications</b></a>
extension point.

<pre>
&lt;extension
	<b>id="workbench"</b>
	point="org.eclipse.core.runtime.applications"&gt;
	&lt;application&gt;
		&lt;run
			class="org.eclipse.ui.internal.ide.IDEApplication"&gt;
		&lt;/run&gt;
	&lt;/application&gt;
&lt;/extension&gt; 
</pre>
<p>
This extension is defined with the same id that is referenced in the <b>application</b> property
of the product extension. (The fully qualified name, with plug-in prefix, is
used when referring to the
application id from the other plug-in.)  Using this mechanism, a separate plug-in
can define all of the product-specific branding, and then refer to an existing
plug-in's application as the application that
is actually run when the product is started.
</p>
<p>
In addition to the application, the <a href="../reference/extension-points/org_eclipse_core_runtime_products.html"><b>org.eclipse.core.runtime.products</b></a>
extension describes product customization properties that are used to configure the product's branding information.
This information is described as named properties.  Let's look again at that portion of the markup for the 
platform plug-in.</p>
<pre>	&lt;property name="windowImages" value="eclipse.png,eclipse32.png"/&gt; 
	&lt;property name="aboutImage" value="eclipse_lg.png"/&gt; 
	&lt;property name="aboutText" value="%productBlurb"/&gt; 
	&lt;property name="appName" value="Eclipse"/&gt; 
	&lt;property name="preferenceCustomization" value="plugin_customization.ini"/&gt; </pre>
The possible property names that are honored by the platform for product customization are defined in
<b><a href="../reference/api/org/eclipse/ui/branding/IProductConstants.html">IProductConstants</a></b>.
See the javadoc for a complete description of these properties and their values.  We'll look at these
further in <a href="product_configproduct.htm">Customizing a product</a>.
<p>
Product customization properties are also used by other platform services such as to
<a href="ua_intro_universal_contributing.htm">configure the Universal Welcome/Intro</a>.
</p>

</BODY>
</HTML>
